package mybatis.interfaces;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 使用 and 连接的 < 操作
 *
 * @author CKC
 */
public interface ILessThanQueryCondition extends Serializable {

    /**
     * 小于,仅支持不同字段and连接，eg: lt[age]=20 表示 age < 20
     * <p>
     * 备注：为了与SwaggerUI结合，产生Swagger文档
     *
     * @return
     */
    @ApiModelProperty(name = "lt[?]", value = "小于,仅支持不同字段and连接，eg: lt[age]=20 表示 age < 20 ")
    @JsonIgnore
    default String getLtSwaggerView() {
        return null;
    }

    /**
     * getLt
     *
     * @return
     * @see #getLtSwaggerView
     */
    Map<String, String> getLt();

    /**
     * setLt
     *
     * @param lt
     * @see #getLtSwaggerView
     */
    void setLt(Map<String, String> lt);

    /**
     * addLt
     *
     * @param field
     * @param value
     * @see #getLtSwaggerView
     */
    default void addLt(String field, String value) {
        if (getLt() == null) {
            setLt(new HashMap<>(8));
        }
        getLt().put(field, value);
    }

    /**
     * setLt(null)
     *
     * @see #getLtSwaggerView
     */
    default void clearLt() {
        setLt(null);
    }

    /**
     * isEmptyLt
     *
     * @return
     */
    @ApiModelProperty(hidden = true)
    @JsonIgnore
    default boolean isEmptyLt() {
        return getLt() == null || getLt().isEmpty();
    }
}
